home *** CD-ROM | disk | FTP | other *** search
/ PC Advisor 2010 April / PCA177.iso / ESSENTIALS / Firefox Setup.exe / nonlocalized / chrome / browser.jar / content / browser / pageinfo / permissions.js < prev    next >
Encoding:
Text File  |  2009-07-15  |  4.0 KB  |  139 lines

  1. //@line 36 "e:\builds\moz2_slave\win32_build\build\browser\base\content\pageinfo\permissions.js"
  2. const ALLOW = nsIPermissionManager.ALLOW_ACTION;   // 1
  3. const BLOCK = nsIPermissionManager.DENY_ACTION;    // 2
  4. const SESSION = nsICookiePermission.ACCESS_SESSION;// 8
  5. var gPermURI;
  6. var gPrefs;
  7.  
  8. var gPermObj = {
  9.   image: function getImageDefaultPermission()
  10.   {
  11.     if (gPrefs.getIntPref("permissions.default.image") == 2)
  12.       return BLOCK;
  13.     return ALLOW;
  14.   },
  15.   cookie: function getCookieDefaultPermission()
  16.   {
  17.     if (gPrefs.getIntPref("network.cookie.cookieBehavior") == 2)
  18.       return BLOCK;
  19.  
  20.     if (gPrefs.getIntPref("network.cookie.lifetimePolicy") == 2)
  21.       return SESSION;
  22.     return ALLOW;
  23.   },
  24.   popup: function getPopupDefaultPermission()
  25.   {
  26.     if (gPrefs.getBoolPref("dom.disable_open_during_load"))
  27.       return BLOCK;
  28.     return ALLOW;
  29.   },
  30.   install: function getInstallDefaultPermission()
  31.   {
  32.     if (gPrefs.getBoolPref("xpinstall.whitelist.required"))
  33.       return BLOCK;
  34.     return ALLOW;
  35.   },
  36.   geo: function getGeoDefaultPermissions()
  37.   {
  38.       return BLOCK;
  39.   }
  40. };
  41.  
  42. var permissionObserver = {
  43.   observe: function (aSubject, aTopic, aData)
  44.   {
  45.     if (aTopic == "perm-changed") {
  46.       var permission = aSubject.QueryInterface(Components.interfaces.nsIPermission);
  47.       if (permission.host == gPermURI.host && permission.type in gPermObj)
  48.         initRow(permission.type);
  49.     }
  50.   }
  51. };
  52.  
  53. function onLoadPermission()
  54. {
  55.   gPrefs = Components.classes[PREFERENCES_CONTRACTID]
  56.                      .getService(Components.interfaces.nsIPrefBranch2);
  57.  
  58.   var uri = gDocument.documentURIObject;
  59.   var permTab = document.getElementById("permTab");
  60.   if(/^https?/.test(uri.scheme)) {
  61.     gPermURI = uri;
  62.     var hostText = document.getElementById("hostText");
  63.     hostText.value = gPermURI.host;
  64.  
  65.     for (var i in gPermObj)
  66.       initRow(i);
  67.     var os = Components.classes["@mozilla.org/observer-service;1"]
  68.                        .getService(Components.interfaces.nsIObserverService);
  69.     os.addObserver(permissionObserver, "perm-changed", false);
  70.     onUnloadRegistry.push(onUnloadPermission);
  71.     permTab.hidden = false;
  72.   }
  73.   else
  74.     permTab.hidden = true;
  75. }
  76.  
  77. function onUnloadPermission()
  78. {
  79.   var os = Components.classes["@mozilla.org/observer-service;1"]
  80.                      .getService(Components.interfaces.nsIObserverService);
  81.   os.removeObserver(permissionObserver, "perm-changed");
  82. }
  83.  
  84. function initRow(aPartId)
  85. {
  86.   var permissionManager = Components.classes[PERMISSION_CONTRACTID]
  87.                                     .getService(nsIPermissionManager);
  88.  
  89.   var checkbox = document.getElementById(aPartId + "Def");
  90.   var command  = document.getElementById("cmd_" + aPartId + "Toggle");
  91.   var perm = permissionManager.testPermission(gPermURI, aPartId);
  92.   if (perm) {
  93.     checkbox.checked = false;
  94.     command.removeAttribute("disabled");
  95.   }
  96.   else {
  97.     checkbox.checked = true;
  98.     command.setAttribute("disabled", "true");
  99.     perm = gPermObj[aPartId]();
  100.   }
  101.   setRadioState(aPartId, perm);
  102. }
  103.  
  104. function onCheckboxClick(aPartId)
  105. {
  106.   var permissionManager = Components.classes[PERMISSION_CONTRACTID]
  107.                                     .getService(nsIPermissionManager);
  108.  
  109.   var command  = document.getElementById("cmd_" + aPartId + "Toggle");
  110.   var checkbox = document.getElementById(aPartId + "Def");
  111.   if (checkbox.checked) {
  112.     permissionManager.remove(gPermURI.host, aPartId);
  113.     command.setAttribute("disabled", "true");
  114.     var perm = gPermObj[aPartId]();
  115.     setRadioState(aPartId, perm);
  116.   }
  117.   else {
  118.     onRadioClick(aPartId);
  119.     command.removeAttribute("disabled");
  120.   }
  121. }
  122.  
  123. function onRadioClick(aPartId)
  124. {
  125.   var permissionManager = Components.classes[PERMISSION_CONTRACTID]
  126.                                     .getService(nsIPermissionManager);
  127.  
  128.   var radioGroup = document.getElementById(aPartId + "RadioGroup");
  129.   var id = radioGroup.selectedItem.id;
  130.   var permission = id.split('#')[1];
  131.   permissionManager.add(gPermURI, aPartId, permission);
  132. }
  133.  
  134. function setRadioState(aPartId, aValue)
  135. {
  136.   var radio = document.getElementById(aPartId + "#" + aValue);
  137.   radio.radioGroup.selectedItem = radio;
  138. }
  139.